import { findPage } from '@/api/ik/data/dataApi'

export const DataTableMixin = {
  props: {
    url: { type: String, default: 'health/content/label/contentlabel' } // API请求的URL
  },
  data() {
    return {
      loading: false, // 表格加载状态
      searcher: { name: '' }, // 搜索框内容
      data: [], // 表格数据
      pagination: { pageSize: 5, pageNo: 1, total: 0 } // 分页信息
    }
  },
  methods: {
    /**
     * 获取表格数据
     * @param {number} [page=1] - 当前页码
     */
    getData(page = 1) {
      this.loading = true // 开始加载数据
      findPage(this.url, this.searcher, this.pagination.pageSize, page)
        .then(res => {
          this.pagination.total = res.data.totalCount // 设置总条数
          this.data = res.data.list // 设置表格数据
          // 可以在此处调用其他需要同步数据的方法，如 syncSelectData
        })
        .finally(() => {
          this.loading = false // 结束加载数据
        })
    },

    /**
     * 翻页
     * @param {number} page - 当前页码
     */
    pageChange(page) {
      this.getData(page) // 请求对应页的数据
    },

    /**
     * 搜索逻辑（可以根据实际需求扩展，此处仅为示例）
     * 此方法已在 handleEnter 中调用，可根据需要进行触发
     */
    search() {
      this.getData(1) // 搜索时重置到第一页
    }
  }
}
